package com.itheima.waitnotify_demo2;

import sun.security.krb5.internal.crypto.Des;

/*
    消费者步骤：
        1，判断桌子上是否有汉堡包。
        2，如果没有就等待。
        3，如果有就开吃
        4，吃完之后，桌子上的汉堡包就没有了
            叫醒等待的生产者继续生产
            汉堡包的总数量减一

        消费者 : 吃货
 */
public class Foodie implements Runnable {

    @Override
    public void run() {
        while(true) {// 循环池汉堡包 , 直到汉堡包的数量为0
            synchronized (Desk.lock) {
                if (Desk.count == 0) {
                    // 吃够10个
                    break;
                }

                // 吃汉堡包的数量不够10个
                // 判断桌子上是否有汉堡包
                if (Desk.flag) {
                    // 存在汉堡包
                    System.out.println("吃货吃了一个汉堡包...");
                    // 桌子上汉堡包已被吃掉
                    Desk.flag = false;
                    // 唤醒生产者生产
                    Desk.lock.notify();
                    // 汉堡包的数量-1
                    Desk.count--;
                } else {
                    // 桌子上不存在汉堡包
                    try {
                        Desk.lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}
